home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 January: Mac OS SDK / Dev.CD Jan 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / PInterfaces / QD3DViewer.p < prev    next >
Encoding:
Text File  |  1998-08-17  |  12.6 KB  |  295 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        QD3DViewer.p
  3.  
  4.      Contains:    MacOS Viewer Controller Interface File.                                
  5.  
  6.      Version:    Technology:    Quickdraw 3D 1.5.4
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT QD3DViewer;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __QD3DVIEWER__}
  27. {$SETC __QD3DVIEWER__ := 1}
  28.  
  29. {$I+}
  30. {$SETC QD3DViewerIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __QD3D__}
  34. {$I QD3D.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED __QD3DGROUP__}
  37. {$I QD3DGroup.p}
  38. {$ENDC}
  39.  
  40. {$IFC TARGET_OS_MAC }
  41. {$IFC UNDEFINED __EVENTS__}
  42. {$I Events.p}
  43. {$ENDC}
  44. {$IFC UNDEFINED __MACTYPES__}
  45. {$I MacTypes.p}
  46. {$ENDC}
  47. {$IFC UNDEFINED __QUICKDRAW__}
  48. {$I Quickdraw.p}
  49. {$ENDC}
  50. {$ENDC}  {TARGET_OS_MAC}
  51.  
  52.  
  53. {$PUSH}
  54. {$ALIGN POWER}
  55. {$LibExport+}
  56.  
  57. {$IFC TARGET_OS_MAC }
  58.  
  59. TYPE
  60.     TQ3ViewerObject                        = Ptr;
  61. {$IFC TYPED_FUNCTION_POINTERS}
  62.     TQ3ViewerDrawingCallbackMethod = FUNCTION(theViewer: TQ3ViewerObject; data: UNIV Ptr): OSErr; C;
  63. {$ELSEC}
  64.     TQ3ViewerDrawingCallbackMethod = ProcPtr;
  65. {$ENDC}
  66.  
  67.  
  68. CONST
  69.     kQ3ViewerShowBadge            = $01;
  70.     kQ3ViewerActive                = $02;
  71.     kQ3ViewerControllerVisible    = $04;
  72.     kQ3ViewerDrawFrame            = $08;
  73.     kQ3ViewerDraggingOff        = $10;
  74.     kQ3ViewerButtonCamera        = $20;
  75.     kQ3ViewerButtonTruck        = $40;
  76.     kQ3ViewerButtonOrbit        = $80;
  77.     kQ3ViewerButtonZoom            = $0100;
  78.     kQ3ViewerButtonDolly        = $0200;
  79.     kQ3ViewerButtonReset        = $0400;
  80.     kQ3ViewerOutputTextMode        = $0800;
  81.     kQ3ViewerDragMode            = $1000;
  82.     kQ3ViewerDrawGrowBox        = $2000;
  83.     kQ3ViewerDrawDragBorder        = $4000;
  84.     kQ3ViewerDraggingInOff        = $8000;
  85.     kQ3ViewerDraggingOutOff        = $00010000;
  86.     kQ3ViewerDefault            = $80000000;
  87.  
  88.     kQ3ViewerEmpty                = 0;
  89.     kQ3ViewerHasModel            = $01;
  90.     kQ3ViewerHasUndo            = $02;
  91.  
  92.  
  93. TYPE
  94.     TQ3ViewerCameraView         = LONGINT;
  95. CONST
  96.     kQ3ViewerCameraRestore        = {TQ3ViewerCameraView}0;
  97.     kQ3ViewerCameraFit            = {TQ3ViewerCameraView}1;
  98.     kQ3ViewerCameraFront        = {TQ3ViewerCameraView}2;
  99.     kQ3ViewerCameraBack            = {TQ3ViewerCameraView}3;
  100.     kQ3ViewerCameraLeft            = {TQ3ViewerCameraView}4;
  101.     kQ3ViewerCameraRight        = {TQ3ViewerCameraView}5;
  102.     kQ3ViewerCameraTop            = {TQ3ViewerCameraView}6;
  103.     kQ3ViewerCameraBottom        = {TQ3ViewerCameraView}7;
  104.  
  105.  
  106. {*****************************************************************************
  107.  **                                                                             **
  108.  **        Return viewer version number                                         **
  109.  **                                                                             **
  110.  ****************************************************************************}
  111. FUNCTION Q3ViewerGetVersion(VAR majorRevision: UInt32; VAR minorRevision: UInt32): OSErr; C;
  112.  
  113.  
  114. {*****************************************************************************
  115.  **                                                                             **
  116.  **        Return viewer release version number                                 **
  117.  **        (in 'vers' format - e.g. 0x01518000 ==> 1.5.1 release)                 **
  118.  **                                                                             **
  119.  ****************************************************************************}
  120. FUNCTION Q3ViewerGetReleaseVersion(VAR releaseRevision: UInt32): OSErr; C;
  121.  
  122. {*****************************************************************************
  123.  **                                                                             **
  124.  **                        Creation and destruction                             **
  125.  **                Note that this is not a QuickDraw 3D object                     **
  126.  **                                                                             **
  127.  ****************************************************************************}
  128. FUNCTION Q3ViewerNew(port: CGrafPtr; VAR rect: Rect; flags: UInt32): TQ3ViewerObject; C;
  129. FUNCTION Q3ViewerDispose(theViewer: TQ3ViewerObject): OSErr; C;
  130. {*****************************************************************************
  131.  **                                                                             **
  132.  **                    Functions to attach data to a viewer                     **
  133.  **                                                                             **
  134.  ****************************************************************************}
  135. FUNCTION Q3ViewerUseFile(theViewer: TQ3ViewerObject; refNum: LONGINT): OSErr; C;
  136. FUNCTION Q3ViewerUseData(theViewer: TQ3ViewerObject; data: UNIV Ptr; size: LONGINT): OSErr; C;
  137. {*****************************************************************************
  138.  **                                                                             **
  139.  **        Functions to write data out from the Viewer                             **
  140.  **                                                                             **
  141.  ****************************************************************************}
  142. FUNCTION Q3ViewerWriteFile(theViewer: TQ3ViewerObject; refNum: LONGINT): OSErr; C;
  143. FUNCTION Q3ViewerWriteData(theViewer: TQ3ViewerObject; data: Handle): UInt32; C;
  144. {*****************************************************************************
  145.  **                                                                             **
  146.  **        Use this function to force the Viewer to re-draw                     **
  147.  **                                                                             **
  148.  ****************************************************************************}
  149. FUNCTION Q3ViewerDraw(theViewer: TQ3ViewerObject): OSErr; C;
  150. FUNCTION Q3ViewerDrawContent(theViewer: TQ3ViewerObject): OSErr; C;
  151. FUNCTION Q3ViewerDrawControlStrip(theViewer: TQ3ViewerObject): OSErr; C;
  152. {*****************************************************************************
  153.  **                                                                             **
  154.  **        Function used by the Viewer to filter and handle events                 **
  155.  **                                                                             **
  156.  ****************************************************************************}
  157. FUNCTION Q3ViewerEvent(theViewer: TQ3ViewerObject; VAR evt: EventRecord): BOOLEAN; C;
  158. {*****************************************************************************
  159.  **                                                                             **
  160.  **        This function returns a PICT of the contents of the                  **
  161.  **        Viewer's window.  The application should dispose the PICT.             **
  162.  **                                                                             **
  163.  ****************************************************************************}
  164. FUNCTION Q3ViewerGetPict(theViewer: TQ3ViewerObject): PicHandle; C;
  165. {*****************************************************************************
  166.  **                                                                             **
  167.  **                        Calls for dealing with Buttons                         **
  168.  **                                                                             **
  169.  ****************************************************************************}
  170. FUNCTION Q3ViewerGetButtonRect(theViewer: TQ3ViewerObject; button: UInt32; VAR rect: Rect): OSErr; C;
  171. FUNCTION Q3ViewerGetCurrentButton(theViewer: TQ3ViewerObject): UInt32; C;
  172. FUNCTION Q3ViewerSetCurrentButton(theViewer: TQ3ViewerObject; button: UInt32): OSErr; C;
  173. {*****************************************************************************
  174.  **                                                                             **
  175.  **        Functions to set/get the group to be displayed by the Viewer.         **
  176.  **                                                                             **
  177.  ****************************************************************************}
  178. FUNCTION Q3ViewerUseGroup(theViewer: TQ3ViewerObject; group: TQ3GroupObject): OSErr; C;
  179. FUNCTION Q3ViewerGetGroup(theViewer: TQ3ViewerObject): TQ3GroupObject; C;
  180. {*****************************************************************************
  181.  **                                                                             **
  182.  **        Functions to set/get the color used to clear the window                 **
  183.  **                                                                             **
  184.  ****************************************************************************}
  185. FUNCTION Q3ViewerSetBackgroundColor(theViewer: TQ3ViewerObject; VAR color: TQ3ColorARGB): OSErr; C;
  186. FUNCTION Q3ViewerGetBackgroundColor(theViewer: TQ3ViewerObject; VAR color: TQ3ColorARGB): OSErr; C;
  187. {*****************************************************************************
  188.  **                                                                             **
  189.  **        Getting/Setting a Viewer's View object.  Disposal is needed.         **
  190.  **                                                                             **
  191.  ****************************************************************************}
  192. FUNCTION Q3ViewerGetView(theViewer: TQ3ViewerObject): TQ3ViewObject; C;
  193. FUNCTION Q3ViewerRestoreView(theViewer: TQ3ViewerObject): OSErr; C;
  194. {*****************************************************************************
  195.  **                                                                             **
  196.  **        Calls for setting/getting viewer flags                                 **
  197.  **                                                                             **
  198.  ****************************************************************************}
  199. FUNCTION Q3ViewerSetFlags(theViewer: TQ3ViewerObject; flags: UInt32): OSErr; C;
  200. FUNCTION Q3ViewerGetFlags(theViewer: TQ3ViewerObject): UInt32; C;
  201. {*****************************************************************************
  202.  **                                                                             **
  203.  **        Calls related to bounds/dimensions.  Bounds is the size of              **
  204.  **        the window.  Dimensions can either be the Rect from the ViewHints     **
  205.  **        or the current dimensions of the window (if you do a Set).             **
  206.  **                                                                             **
  207.  ****************************************************************************}
  208. FUNCTION Q3ViewerSetBounds(theViewer: TQ3ViewerObject; VAR bounds: Rect): OSErr; C;
  209. FUNCTION Q3ViewerGetBounds(theViewer: TQ3ViewerObject; VAR bounds: Rect): OSErr; C;
  210. FUNCTION Q3ViewerSetDimension(theViewer: TQ3ViewerObject; width: UInt32; height: UInt32): OSErr; C;
  211. FUNCTION Q3ViewerGetDimension(theViewer: TQ3ViewerObject; VAR width: UInt32; VAR height: UInt32): OSErr; C;
  212. FUNCTION Q3ViewerGetMinimumDimension(theViewer: TQ3ViewerObject; VAR width: UInt32; VAR height: UInt32): OSErr; C;
  213. {*****************************************************************************
  214.  **                                                                             **
  215.  **                            Port related calls                                 **
  216.  **                                                                             **
  217.  ****************************************************************************}
  218. FUNCTION Q3ViewerSetPort(theViewer: TQ3ViewerObject; port: CGrafPtr): OSErr; C;
  219. FUNCTION Q3ViewerGetPort(theViewer: TQ3ViewerObject): CGrafPtr; C;
  220. {*****************************************************************************
  221.  **                                                                             **
  222.  **        Adjust Cursor should be called from idle loop to allow the Viewer     **
  223.  **        to change the cursor according to the cursor position/object under     **
  224.  **        the cursor.                                                             **
  225.  **                                                                             **
  226.  ****************************************************************************}
  227. FUNCTION Q3ViewerAdjustCursor(theViewer: TQ3ViewerObject; VAR pt: Point): BOOLEAN; C;
  228. FUNCTION Q3ViewerCursorChanged(theViewer: TQ3ViewerObject): OSErr; C;
  229.  
  230. {*****************************************************************************
  231.  **                                                                             **
  232.  **        Returns the state of the viewer.  See the constant defined at the     **
  233.  **        top of this file.                                                     **
  234.  **                                                                             **
  235.  ****************************************************************************}
  236. FUNCTION Q3ViewerGetState(theViewer: TQ3ViewerObject): UInt32; C;
  237. {*****************************************************************************
  238.  **                                                                             **
  239.  **                            Clipboard utilities                                 **
  240.  **                                                                             **
  241.  ****************************************************************************}
  242. FUNCTION Q3ViewerClear(theViewer: TQ3ViewerObject): OSErr; C;
  243. FUNCTION Q3ViewerCut(theViewer: TQ3ViewerObject): OSErr; C;
  244. FUNCTION Q3ViewerCopy(theViewer: TQ3ViewerObject): OSErr; C;
  245. FUNCTION Q3ViewerPaste(theViewer: TQ3ViewerObject): OSErr; C;
  246.  
  247. {*****************************************************************************
  248.  **                                                                             **
  249.  **                            New Event Model                                     **
  250.  **                                                                             **
  251.  ****************************************************************************}
  252. FUNCTION Q3ViewerMouseDown(theViewer: TQ3ViewerObject; x: LONGINT; y: LONGINT): BOOLEAN; C;
  253. FUNCTION Q3ViewerContinueTracking(theViewer: TQ3ViewerObject; x: LONGINT; y: LONGINT): BOOLEAN; C;
  254. FUNCTION Q3ViewerMouseUp(theViewer: TQ3ViewerObject; x: LONGINT; y: LONGINT): BOOLEAN; C;
  255. FUNCTION Q3ViewerHandleKeyEvent(theViewer: TQ3ViewerObject; VAR evt: EventRecord): BOOLEAN; C;
  256.  
  257. {*****************************************************************************
  258.  **                                                                             **
  259.  **                                Drawing CallBack                             **
  260.  **                                                                             **
  261.  ****************************************************************************}
  262. FUNCTION Q3ViewerSetDrawingCallbackMethod(theViewer: TQ3ViewerObject; callbackMethod: TQ3ViewerDrawingCallbackMethod; data: UNIV Ptr): OSErr; C;
  263.  
  264. {*****************************************************************************
  265.  **                                                                             **
  266.  **                                    Undo                                     **
  267.  **                                                                             **
  268.  ****************************************************************************}
  269. FUNCTION Q3ViewerUndo(theViewer: TQ3ViewerObject): OSErr; C;
  270. FUNCTION Q3ViewerGetUndoString(theViewer: TQ3ViewerObject; str: CStringPtr; VAR cnt: UInt32): BOOLEAN; C;
  271.  
  272. {*****************************************************************************
  273.  **                                                                             **
  274.  **                                Camera Support                                 **
  275.  **                                                                             **
  276.  ****************************************************************************}
  277. FUNCTION Q3ViewerGetCameraCount(theViewer: TQ3ViewerObject; VAR cnt: UInt32): OSErr; C;
  278. FUNCTION Q3ViewerSetCameraByNumber(theViewer: TQ3ViewerObject; cameraNo: UInt32): OSErr; C;
  279. FUNCTION Q3ViewerSetCameraByView(theViewer: TQ3ViewerObject; viewType: TQ3ViewerCameraView): OSErr; C;
  280. {$ENDC}  {TARGET_OS_MAC}
  281.  
  282.  
  283.  
  284.  
  285. {$ALIGN RESET}
  286. {$POP}
  287.  
  288. {$SETC UsingIncludes := QD3DViewerIncludes}
  289.  
  290. {$ENDC} {__QD3DVIEWER__}
  291.  
  292. {$IFC NOT UsingIncludes}
  293.  END.
  294. {$ENDC}
  295.